The recent trend towards multi-core processors and greater processor capability has increased the demand for more efficient information processing. Multi-core processors come in many forms, from the dual-core processors found in personal computing devices to the multiple thousand core processors found in research institutions.
In many instances the information to be processed is organized in a multi-dimensional matrix array. Often the desired output requires some combination of the elements in the array. Examples of these operations include, but are not limited to, sorting, parsing, combinatory reduction, and region labeling. These types of operations are fundamental primitives for implementing a wide range of algorithms and software on modern GPU's.
When the matrix operations are executed using multi-core processors, desired outputs may be returned more quickly because the processors can work in parallel fashion. This parallel process can be enhanced by maximizing the cooperation of the multiple processors.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.